BOOL Mds_initial( IN PADAPTER Adapter );
VOID Mds_Destroy( IN PADAPTER Adapter );
VOID Mds_Tx( IN PADAPTER Adapter );
VOID Mds_HeaderCopy( IN PADAPTER Adapter, IN PDESCRIPTOR pDes, IN PUCHAR TargetBuffer );
USHORT Mds_BodyCopy( IN PADAPTER Adapter, IN PDESCRIPTOR pDes, IN PUCHAR TargetBuffer );
VOID Mds_DurationSet( IN PADAPTER Adapter, IN PDESCRIPTOR pDes, IN PUCHAR TargetBuffer );
VOID Mds_SendComplete( IN PADAPTER Adapter, IN PT02_DESCRIPTOR pT02 );
VOID Mds_MpduProcess( IN PADAPTER Adapter, IN PDESCRIPTOR pRxDes );
VOID Mds_reset_descriptor( IN PADAPTER Adapter );
extern void DataDmp(UCHAR *pdata, ULONG len, ULONG offset);


void vRxTimerInit(PWB32_ADAPTER Adapter);
void vRxTimerStart(PWB32_ADAPTER Adapter, int timeout_value);
void RxTimerHandler_1a(IN PADAPTER Adapter);
void vRxTimerStop(PWB32_ADAPTER Adapter);
void RxTimerHandler(IN PVOID			SystemSpecific1,
					  IN PWB32_ADAPTER 	Adapter,
					  IN PVOID			SystemSpecific2,
					  IN PVOID			SystemSpecific3);


// For Asynchronous indicating. The routine collocates with USB.
VOID Mds_MsduProcess( IN PWB32_ADAPTER Adapter, IN PRXLAYER1 pRxLayer1, IN UCHAR SlotIndex);

// For data frame sending 20060802
USHORT MDS_GetPacketSize( IN PADAPTER Adapter );
VOID MDS_GetNextPacket( IN PADAPTER Adapter, IN PDESCRIPTOR pDes );
VOID MDS_GetNextPacketComplete( IN PADAPTER Adapter, IN PDESCRIPTOR pDes );
VOID MDS_SendResult( IN PADAPTER Adapter, IN UCHAR PacketId, IN BOOLEAN SendOK );
VOID MDS_EthernetPacketReceive( IN PADAPTER Adapter, IN PRXLAYER1 pRxLayer1 );


